如題,Day2就是要來講Git 簡單介紹
DevSecOps 之路的第一步,先把專案推上雲端,才能開始玩自動化與安全掃描。
本科生就跳過今天吧~怕會看到睡著
說到這個Git,要先提到兩個東西:GitHub 跟 GitLab。
這兩個差不多就像是雲端的「專案養老院」,把你的程式碼送過去,它們會幫你好好照顧,還能隨時叫出來看歷史回顧,看看你三年前的code寫的有多醜,以及一個專案可以方便所有人上去維護。
那GitHub vs GitLab 恩怨就不要問我了,畢竟他們的定位些許不同
下面兩篇文章是別人的介紹我就放這了,自取
Git是由大名鼎鼎囉,反正我也是網路找的(google講的比我還好)
想像一下你在寫專題報告的時候,有時候寫一寫發現「啊…寫錯方向了!」
按照我以前的習慣,就是:
開一個新資料夾叫 報告_1
隔天再開一個叫 報告_2
一週後出現 報告_final_v3_OK
甚至最後就是無限final XD
這在你自己知道命名規則的情況下還好,
但如果是團隊合作呢?
試想一下另一個組員打開terminal
$cd C:\Users\報告
$ls
報告_改版
報告_改版2
報告_final
報告_final_v3_OK
報告_final_v3_OK修正版
你看他會不會靈魂出竅?
下次小組報告,你拿了一份報告_final版本
結果報告才發現其他人拿的不是這個版本,
內容全不一樣,甚至有人多了一整章你不懂的技術?
那畫面蠻尷尬 XD
如何解決如此慘案呢?
就需要 版本控制(Version Control)
它的任務就是:
而這位版本控制界的超級英雄,就是我們今天的主角——Git。
想像一下你的專案是一條時間軸,每一次你按下 commit,就像在遊戲裡存檔。
──●──●──●──●──
v1 v2 v3 v4
講到這個就要講到最近在玩chain together
我真的很佩服,沒有存檔在玩的人..
我覺得玩這種跑酷,我一定要有存檔點,不然我會玩到崩潰:D
有時候你想嘗試新功能(例如報告加一章遊玩chain together的心得),
但又怕毀掉原本的版本,這時就可以開分支。
main: ──●──●──●──●──
\
chain together:●──●──
Git 就像你開了平行宇宙去亂玩,玩爛了刪掉就好,不會影響現實世界。
當你在分支上完成了新功能,並且確認沒有炸掉主線,就可以把它合併回去。
main: ──●──●──●─────●──
\ /
chain together: ●──●
合併時如果兩邊同時改了同一行,就會出現衝突(Conflict)
這時候 Git 會說:「我不知道你要用誰的版本,自己決定吧。」
如果你在某次提交中加了一行會把專案毀掉的程式碼,不用刪檔案重來,直接回到前一個 commit 就好。
──●──●──● ← 回到這裡
Git 就像是 Ctrl+Z 的進化版,能一口氣回到幾天前,
而且連當時的檔案內容、修改紀錄都一併復原。
其實蠻爽的,無法想像沒有Ctrl+Z的生活..
明天接著安裝Git,介紹他的用法